﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Windows.Forms;
using System.Xml;
using System.Drawing;

namespace Birthday
{
    public partial class StartForm: Form
    {
        private string[] GetSplitName (ListBox lb)
        {
            if (lb.SelectedIndex == -1)
            {
                return new string[2] { "", "" };
            }

            string tempString = lb.SelectedItem.ToString().Trim();// 001   Александр Гудок

            string temp=null;

            while (true)
            {
                if (temp == tempString)
                    break;
                else
                {
                    temp = tempString;
                    tempString = tempString.Replace("  ", " ");
                }
            }
            return tempString.Substring(4).Split(' ');
        }

        private void GetAllTypedControls(Control parentControl, 
            List<Control> childControls, Type type)
        {
            //работаем только с элементами искомого типа

            if (parentControl.GetType() == type)
            {
                childControls.Add(parentControl);
            }

            //проходим через все элементы рекурсивно, чтобы не пропустить элементы, которые находятся в контейнерах

            foreach (Control ctrChild in parentControl.Controls)
            {
                GetAllTypedControls(ctrChild, childControls, type);
            }

        }

        private void SetControlsProperties()
        {
            allListBoxes = new ListBox[4] { this.lb_AllPerson, this.lb_CreatePerson,
                this.lb_DeletePerson, this.lb_UpdatePerson };

            allMaskedTextBox = new List<Control>();
            allLabel = new List<Control>();

            GetAllTypedControls(this, allMaskedTextBox, typeof(MaskedTextBox));
            GetAllTypedControls(this, allLabel, typeof(Label));


            foreach (MaskedTextBox mtb in allMaskedTextBox)
            {
                mtb.BackColor = SystemColors.Info;
                mtb.ForeColor = Color.Red;

            }

            foreach (Control lbl in allLabel)
            {
                ((Label)lbl).ForeColor = SystemColors.GrayText;
            }
        }

        private Control GetChildControl(Control parentControl,Type type)
        {
            //работаем только с искомым контролом
            if (parentControl.GetType() == type)
            {
                return parentControl;
            }
            foreach (Control childControl in parentControl.Controls)
            {
                Control potenResultControl = GetChildControl(childControl, type);
                if (potenResultControl != null)
                    return potenResultControl;
            }
            return null;
            
        }
    }
}
